/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import java.util.ArrayList;
import model.dao.AlunoDao;
import model.pojo.Aluno;
import model.dao.HistoricoAlunoDao;

/**
 *
 * @author leonidia
 */
public class AlunoView {

    private AlunoDao alunoDao;
    private HistoricoAlunoDao historico;

    public AlunoView(AlunoDao alunoDao) {
        this.alunoDao = alunoDao;
    }

    public ArrayList<Aluno> addAluno() {
        Aluno aluno;
        aluno = new Aluno();
        System.out.println("##  Adicionar Aluno  ##");
        System.out.println("digite o nome da aluno");
        aluno.setNome(Console.readString());

        System.out.println("digite o cpf do aluno");
        aluno.setCpf(Console.readString());

        System.out.println("digite a matricula do aluno");
        aluno.setMatricula(Console.readString());

        aluno.setId(alunoDao.novoId());
        if (alunoDao.addAluno(aluno) == false) {
            System.out.println("Aluno ja cadastrado");
        }
        return alunoDao.getAluno();
    }

    public boolean ListarAluno() {
        ArrayList<Aluno> list;
        list = alunoDao.getAluno();
        if (list.isEmpty()) {
            System.out.println("Não há alunos cadastradas:\n");
            return false;
        }
        System.out.println("Listagem de alunos:\n");
        int i;
        for (i = 0; i < list.size(); i++) {
            System.out.println("Id: " + list.get(i).getId());
            System.out.println("Nome: " + list.get(i).getNome());
            System.out.println("Cpf: " + list.get(i).getCpf());
            System.out.println("Matricula: " + list.get(i).getMatricula());
            System.out.println("----------------------------\n");
        }
        return true;
    }

    public void ListarAluno(Integer idAluno) {
        ArrayList<Aluno> list = alunoDao.getAluno();
        int i;
        for (i = 0; i < list.size(); i++) {
            if (list.get(i).getId() == idAluno) {
                System.out.println("Id: " + list.get(i).getId());
                System.out.println("Nome: " + list.get(i).getNome());
                System.out.println("Cpf: " + list.get(i).getCpf());
                System.out.println("Matricula: " + list.get(i).getMatricula());
                System.out.println("----------------------------\n");
            }
        }
    }

    public boolean listarAlunosPorId(ArrayList<Integer> listaIdAluno) {
        Integer i, j;
        if (listaIdAluno.isEmpty()) {
            System.out.println("não a alunos cadastrados");
            return false;
        }
        for (j = 0; j < alunoDao.getAluno().size(); j++) {
            for (i = 0; i < listaIdAluno.size(); i++) {
                if (alunoDao.getAluno().get(j).getId() == listaIdAluno.get(i)) {
                    System.out.println("Id:" + alunoDao.getAluno().get(i).getId());
                    System.out.println("Nome:" + alunoDao.getAluno().get(i).getNome());
                    System.out.println("Cpf:" + alunoDao.getAluno().get(i).getCpf());
                    System.out.println("Matricula" + alunoDao.getAluno().get(i).getMatricula());
                    System.out.println("----------------------------\n");
                }
            }
        }
        return true;
    }

    public boolean listarAlunosPorDisciplina(Integer idDisciplina) {
        Integer i, j;
        if (idDisciplina < 0) {
            System.out.println("ID da Disciplina inválido.");
            return false;
        }

        for (i = 0; i < historico.getListaIdDisciplina().size(); i++) {
            if (historico.getListaIdDisciplina().get(i) == idDisciplina) {
                ListarAluno(historico.getListaIdAluno().get(i));
            }
        }

        return true;
    }

    public String buscaNomeAlunoPorId(Integer idAluno) {
        Integer i, j;
        for (j = 0; j < this.alunoDao.getAluno().size(); j++) {
            for (i = 0; i < alunoDao.getAluno().size(); i++) {
                if (alunoDao.getAluno().get(i).getId() == idAluno) {
                    return alunoDao.getAluno().get(i).getNome();
                }
            }
        }
        return null;
    }
}